1楼:wing辉
亲,你这样写是会报错的,因为你的占位符就一个,你的取地址符却是两个。
2楼:寂默有时
x[i][i]存的什么东西?
从x[1][1]一直输出直到碰见0为止
c语言中,printf函数如何处理%s?
3楼:yx陈子昂
c语言中,printf函数处理%s的函数原型
如下:case 's':
s = va_arg(args, char *);
if (!s) s = "";
len = strnlen(s, precision);
if (!(flags & left)) while (len < field_width--) *str++ = ' ';
for (i = 0; i < len; ++i) *str++ = *s++;
while (len < field_width--) *str++ = ' ';
continue;
首先判断打印字符串是否为专空属,如果为空,则填充"",然后把打印内容拷贝到打印缓存区内。
4楼:匿名用户
'\0'是字符串的结
bai尾标志,占一字du节,值为0。zhiprintf("%s",arr)语句指定了字符串的开始地址daoarr,函数向后逐字
内节寻找值为容0的字节,找到后把之间的字节按字符解释并输出。
你给出的情况,先输出abc,后面输出什么,要看内存的实际情况,可能什么也不输出,也可能输出一些乱码。
5楼:可可阿文
c编译器自动处理的,这个你不用担心,如果你定义的四个字符串数组,它就自己默认,如果定义的是字符数组就没有\0这一说了
6楼:匿名用户
这种情况如果你直接用printf("%s", arr);打印出来会出现内存泄漏,不应该那样写。你就用下面的方法实现:
for(i = 0; i < 3; i++)
7楼:我是不是师兄
会从bai数组arr的首地址开始du
一个字节一个字节的zhi读取并输出 一直到内存dao中某个字节为内0才停止
所以有容时候 会输出乱码 因为这个字节里面是存储什么都有可能 有时候会弹出 某地址不可读
那是操作系统的内存保护机制 已经到一些没读取权限的内存 指针狂飙 就是这下场
你可以在非调试模式下 运行一下** 看看情况
8楼:回忆
%s是输出以arr为首地址的一串字符!
c语言for(i 0,j 10 ij,i-j ij中ij是什么意思
1楼 匿名用户 for 循环中间的语句是循环结束的条件 是个bool值,true和false i逗号表达式 就是逗号分隔的若干个表达式,逗号表达式最后的结果是 最后一个表达式的值 也就是i j的值 c语言中 非0为真,0为假 也就是i j 为0整个循环就结束了 2楼 匿名用户 判断循环是否结束的条件...
c语言中int a 1,b 2,c c 1.0 b a输出结果为什么
1楼 匿名用户 结果是c的值是0 因为1 0 b 都会转换位浮点型,结果是0 5 0 5 a 也是会把a转为浮点型,结果是0 5 而c是整形,会对右边运算的结果取整,所结果就是0了。 假如 int a 1 b 2 c 3 表达式a b c的值是1还是0 为什么? 2楼 岔路程序缘 在c语言中,1代表...
符号在c语言中表示单一I O口和异或运算是怎样区分的
1楼 晨曦月殇 这个是这样区分的啊 你表示io口时是这样的 sbit p10 p1 0 是吧 有sbit呢 你玩抑或运算时一般是这样的 int xx 0xaf int yy 0xdf int cc xx yy 很明显吧,异或运算两边一般是变量。 当然 还有这种情况 int cc p10 0xff 这...