#include <stdio.h>
int main(){
int len = 2;
//int a[len] = { 1, 2};//错误,不能使变量
int a[2];//正确
a[0] = 1;
a[1] = 2;
//a[2] = 3;//超过数组长度,但是编译器并不会检查,运行报错
int b['a'] = {1,2,3};//'a'=97,所以可以作为数组长度,但是后面的元素没有初始化,其值默认为0
for (int i = 0; i < 97; ++i){
printf("b[%d]=%d\n",i,b[i]);
}
int c[2 * 3];//2*3是固定值可以作为数组长度
int d[] = { 1, 2, 3 };//如果初始化的同时赋值则数组长度可以省略,当前个数为3
}
#include <stdio.h>
int main(){
int const l = 3;
int a[l] = { 1, 2,3 };
for (int i = 0; i < l; ++i){
//由于当前在32位编译器下,int型长度为4个字节,可以判断出三个地址两两相差都是4
printf("a[%d]=%d,address=%x\n", i, a[i], &a[i]);
}
/*当前输出结果:
a[0] = 1, address = c9f95c
a[1] = 2, address = c9f960
a[2] = 3, address = c9f964*/
}
#include <stdio.h>
void changeValue(int a[]){
a[0] = 10;
}
int main(){
int a[2] = {1,2};
changeValue(a);
for (int i = 0; i < 2; ++i){
printf("a[%d]=%d\n",i,a[i]);
}
/*打印结果
a[0]=10
a[1]=2
*/
}
#include <stdio.h>
int main(){
int a[2][3];//2行3列,二维数组可以看成是一个特殊的一维数组,只是它的每一个元素又是一个一维数组
a[0][0] = 1;
a[0][1] = 2;
a[0][2] = 3;
a[1][0] = 4;
a[1][1] = 5;
a[1][2] = 6;
for (int i = 0; i < 2; ++i){
for (int j = 0; j < 3; ++j){
printf("a[%d][%d]=%d,address=%x\n", i, j, a[i][j], &a[i][j]);
}
}
/*打印结果
a[0][0]=1,address=f8fb24
a[0][1]=2,address=f8fb28
a[0][2]=3,address=f8fb2c
a[1][0]=4,address=f8fb30
a[1][1]=5,address=f8fb34
a[1][2]=6,address=f8fb38
*/
//初始化并直接赋值
int b[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
//由于数组的赋值顺序是先从第一行第一列,再第一行第二列...然后第二行第一列...,所以我们也可以写成如下形式
int c[2][3] = { 1, 2, 3, 4, 5, 6 };
//也可以只初始化部分数据,其余元素默认为0
int d[2][3] = { 1, 2, 3, 4 };
for (int i = 0; i < 2; ++i){
for (int j = 0; j < 3; ++j){
printf("d[%d][%d]=%d\n", i, j, d[i][j]);
}
}
/*打印结果
d[0][0]=1
d[0][1]=2
d[0][2]=3
d[1][0]=4
d[1][1]=0
d[1][2]=0
*/
//当然下面赋值也可以
int e[2][3] = { {}, { 4, 5, 6 } };
//可以省略行号,但是绝对不可以省略列号,因为按照上面说的赋值顺序,它无法判断有多少行
int f[][3] = { {1,2,3},{4,5,6} };
}
//
// main.c
// ArrayAndString
//
// Created by KenshinCui on 14-7-06.
// Copyright (c) 2014年 Kenshin Cui. All rights reserved.
//
#include <stdio.h>
int main(int argc, const char * argv[])
{
char a[] = {'K','e','n','s','h','i','n','\0'};
printf("%s",a); //结果:Kenshin,注意使用%s输出字符串内容,如果换成整形输出格式其实输出的是a的地址
printf("\n");
printf("address=%x", a); //结果:address=5fbff890
printf("\n");
//后面的\0绝对不能省略,如果没有\0则会出现如下情况
char b[] = { 'I', 'a', 'm'};
printf("%s",b); //没有按照期望输出,多了一些垃圾数据,在当前环境打印结果:IamKenshin
printf("\n");
printf("address=%x",b); //结果:address=5fbff88d
printf("\n");
//直接赋值为字符串,此时不需要手动添加\0,编译器会自动添加
char c[] = "Kenshin";
printf("c=%s",c); //结果:c=Kenshin
printf("\n");
//二维数组存储多个字符串
char d[2][3]={"Kenshin","Kaoru","Rose","Jack","Tom","Jerry"};
return 0;
}
//
// main.c
// ArrayAndString
//
// Created by Kenshin Cui on 14-7-04.
// Copyright (c) 2014年 Kenshin Cui. All rights reserved.
//
#include <stdio.h>
int main(int argc, const char * argv[])
{
/*字符操作*/
putchar('a'); //结果:a,putchar一次只能输出一个字符
printf("\n");
putchar(97);//结果:a
printf("\n");
char a;
a=getchar();//getchar()一次只能接收一个字符,可以接收空格、tab、回车
printf("a=%c",a);
printf("\n");
/*字符串操作*/
char b[]="Kenshin";
printf("b=%s",b);
printf("\n");
puts(b); //puts用于输出单个字符串,不能像printf格式化输出,会自动添加换行
printf("\n");
char c[10];
scanf("%s",c);//注意c没必要写成&c,因为c本身就代表了数组的地址
printf("c=%s\n",c);//注意即使你输入的内容大于10,也能正确输出,但是下面的gets()函数却不行
printf("\n");
//gets()函数,注意它是不安全的,因为接收的时候不知道它的大小容易造成溢出,建议不要使用
char d[10];
gets(d); //gets一次只能接收一个字符串,但是scanf可接收多个;scanf不能接收空格、tab,gets则可以
printf("d=%s",d);
printf("\n");
char e[]={'K','s','\0'};
printf("%lu",strlen(e)); //结果是:2,不是3,因为\0不计入长度
printf("\n");
char f[]={"Kenshin"};
printf("%lu",strlen(f)); //结果是:7
printf("\n");
char g[5];
strcpy(g,"hello,world!");
printf("%s",g); //结果是:hello,即使定义的g长度为5,但是也能完全拷贝进去
printf("\n");
char h[5];
char i[]={'a','b','c','\0','d','e','f','\0'};
strcpy(h,i);
printf("%s",h); //结果是:abc,遇到第一个\0则结束
printf("\n");
strcat(i,"ghi");
printf("%s",i); //结果是:abcghi,注意不是abcdefghi,strcat,从i第一\0开始使用“ghi”覆盖,覆盖完之后加上一个\0,在内存中目前应该是:{'a','b','c','g','h','i','\0','f','\0'}
printf("\n");
char j[]="abc";
char k[]="aBc";
char l[]="acb";
char m[]={'a','\0'};
printf("%d,%d,%d",strcmp(j,k),strcmp(k,l),strcmp(l,m));//遇到第一个不相同的字符或\0则返回两者前后之差,结果:32,-33,99
printf("\n");
return 0;
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有