相关疑难解决方法(0)

递增数组变量时,左值不一致所需的错误

在做的时候我得到"左值作为增量操作数" *++a.我哪里错了?我认为这相当于*(a+1).这种行为很奇怪,因为*++argv工作正常.请帮忙.

#include <stdio.h>

int main(int argc, char *argv[])
{    
  printf("Arg is:  = %s\n", *++argv);

  int a1[] = {1,2,3,4,5,6};    
  int a2[] = {7,8,9,10,11,12};
  int *a[2];

  a[0] = a1;
  a[1] = a2;

  printf("ptr  = %d\n", *++a);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c c++ pointers

4
推荐指数
1
解决办法
426
查看次数

2D数组的C指针算法

// strings is a 2D array (each string is 11 bytes long)
char strings[][11] = {"0123456789", "2222244444", "3333366666"};   

printf("String 3 Character 2 is %c\n", strings[2][1]);
Run Code Online (Sandbox Code Playgroud)

如何使用指针算法而不是strings[2][1]?来编写此print语句?

c pointers

0
推荐指数
1
解决办法
2012
查看次数

是printf("%d",*(++(*a))); 未定义

printf("%d",*(++(*a)));未定义?这a是指向整数的指针.

我没有除此之外的任何代码.这个问题的扩展,引起了很多困惑.只想知道这个print中发生了什么.它依赖于Architechture(32 Vs 64)或编译器版本.

希望答案具有描述性和清晰性.

c

-3
推荐指数
1
解决办法
205
查看次数

标签 统计

c ×3

pointers ×2

c++ ×1