8个回答
展开全部
如果str定义为指针str+3表示str的地址处加3处的地址;
如果str定义为非指针如整形变量,则表示str数值加3
如果str定义为非指针如整形变量,则表示str数值加3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如*str
=
“abcdefg”;
str指向字符串abcdefg的首地址,如果其为0x40300,那么*str指向a。
str+4=0x40304,*(str+4)指向e;
=
“abcdefg”;
str指向字符串abcdefg的首地址,如果其为0x40300,那么*str指向a。
str+4=0x40304,*(str+4)指向e;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
str+3
需要分如下2种情况进行分析:
1、当str是数值类型的时候(如int、float、double等)
str+3就表示数值的加法,如:
int str=2;
int b = str+3; // b的值就是2+3=5
2、当str是指针或数组名时候(如char
*p、str[5]等)
str+3就表示对地址的操作,如:
char str[5] = {'a', 'b', 'c', 'd', 'e'}; // 定义char型数组并初始化
char *p; // 定义char型指针
p = str+3; // 将指针p指向str数组中第4个元素(下标从0开始)的地址
printf("%c", *p); // 输出字符'd'
需要分如下2种情况进行分析:
1、当str是数值类型的时候(如int、float、double等)
str+3就表示数值的加法,如:
int str=2;
int b = str+3; // b的值就是2+3=5
2、当str是指针或数组名时候(如char
*p、str[5]等)
str+3就表示对地址的操作,如:
char str[5] = {'a', 'b', 'c', 'd', 'e'}; // 定义char型数组并初始化
char *p; // 定义char型指针
p = str+3; // 将指针p指向str数组中第4个元素(下标从0开始)的地址
printf("%c", *p); // 输出字符'd'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询