printf("%s",sz1+1)是什么意思?

[复制链接]
查看11 | 回复5 | 2009-3-8 12:25:50 | 显示全部楼层 |阅读模式
printf("%s",sz1+1)是什么意思?其中sz1是一个字符串,
比如:char sz1[100].难道字符串也能加法???

回复

使用道具 举报

千问 | 2009-3-8 12:25:50 | 显示全部楼层
C语言指针与数组没学好了吧,不过是有点不好懂。sz1[100],sz1表示地址,合起来的意思就是从sz1这个地址开始存放100数据.printf是打印显示printf("%s",sz1)表示从地址sz1开始打印。可以打印你数组里的全部字符printf("%s",sz1+1)表示从下一个地址开始打印,最多可以打印你数组里的99字符,因为是从第二个地址开始的。好像是哈,都几年没用C了,最好问问你们老师。计算机里,地址和数据概念就相当于你家里的地址号与家里的人数量一样。...
回复

使用道具 举报

千问 | 2009-3-8 12:25:50 | 显示全部楼层
比如:char sz1[100] = {"1234"};printf("%s",sz1+1);赋值以后,sz1中应是sz1[0] '1'sz1[1] '2'sz1[2] '3'sz1[3] '4'sz1[4] '\0'printf("%s",sz1+1);是输出字符串,指定字符串的起始地址是 sz1+1...
回复

使用道具 举报

千问 | 2009-3-8 12:25:50 | 显示全部楼层
sz1 是char sz1[100]的首地址 一维数组sz1[0]默认sz1;二维数组就不可以这样写了。...
回复

使用道具 举报

千问 | 2009-3-8 12:25:50 | 显示全部楼层
输出 所有SZ1里的字符当然可以啊应该是用在循环中啊相当于:char *p=sz1;
printf("%s",p+1) ; for(i=1;i<=100;i++)
printf("%s",p+1); //或者printf("%s",sz1+1)sz1[]+1 等于 p+1...
回复

使用道具 举报

千问 | 2009-3-8 12:25:50 | 显示全部楼层
sz1是char[]的首地址sz1+1就是szi[1]开始往下读读到\0结束...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行