您的位置:首页 > 编程语言 > C语言/C++

【黑马程序员】-01c语言基础知识(变量和scanf)

2015-03-21 14:21 411 查看
------- <ahref="http://www.itheima.com" target="blank">android培训</a>、<ahref="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
一. 变量

1. 变量的定义:变量类型 变量名;

目的:分配内存空间给变量占用。(例如:int型占用4个字节,char占1个字节)

不同类型所占用得空间:

16位编译器32位编译器 64位MAC编译器
char111
int244
float444
double888
在c语言中,无bool型。

2. 变量输出:

变量的输出常用的格式为:

(1)printf("%d", 变量名或者常量);//%d为格式符,输出时变量名或者常量占用%d的位置。

(2)输出类型的规定有以下几点:

%d:输出整型 %f:用来输出小数,默认为6位,可以通过“.x”来给边输出的小数位数,例如“%.4f”表示小数点后输出4位数。

%c:输出字符

printf("%d, %.2f, %c", 14, 13.2, 'd'); //整体的例子

(3)变量使用注意

每一个变量在使用时,都是有一定的作用域的,超出作用域,系统就会报错。一般,作用域的判断可以根据大括号的范围来确定。但是也有例外。

3. 代码块

因为在ios系统开发中非常关注内存,因此代码块的使用有利于用尽尽快释放,也即是说及时回收不再使用的变量。下边以一段代码为例解释代码块:

#import <Foundation/Foundation.h>

int main()
{
int score = 100;
{   //限定了score的使用范围
int score = 200;

//在寻找score时,先寻找离自己最近的使用。因此输出为200.
printf("score的值为:%d\n", score);
}  //内层score的作用范围到此结束。
printf("score的值为:%d\n", score);  //输出为100.

return 0;
}
4. 全局变量

一般的变量我们都会定义在main函数之中,但是有时我们也会在main函数之外定义一些变量,这些变量称之为全局变量。

二. scanf函数

1. 在系统内部,内存都是以字节为单位。而且内存的寻址都是由大到小。

2. 变量越先定义,地址越大;

3. 如果一个已知类型的变量地址已经知道了,那么接下来的变量的地址就知道了。

下面以一段代码为例:

#import <Foundation/Foundation.h>

int main()
{
int score = 100;  //先定义,因此地址应该大
int score1 = 200;  //后定义,地址应该小

printf("score的地址为:%p\n", &score);  //输出score的地址:0x7fff5fbff7d8
printf("score1的地址为:%p\n", &score1);  //输出score1的地址:0x7fff5fbff7d4

return 0;
}
4. 在使用scanf时,必须包含头文件<stdio.h>,否则不能调用。scanf函数是一个阻塞式函数,等待用户输入。用户输入完毕后,就会将用户输入的值赋值给接受的变量。

(1)基本定义形式为:

scanf("%d", 要接受数据的变量地址);

(2)scanf的其他用法和注意:

1> scanf也可以输入字符(char)和字符点(float/double);

2> 在多个变量输入时,scanf中用什么隔开,输入时就要用什么隔开,因此最好在输入之前,先打印一句话进行提醒用户;

3> 如果scanf中用空格,则输入可以用空格、Tab或者回车分隔;

4> 在scanf的“”中不能使用“\n”,这样会导致一直在输入,停不下来。

代码实现:

(1)普通使用
#import <Foundation/Foundation.h>

int main()
{
int c;
//注意这里不能写入“\n”,&c是去c得地址。%d限制输入整型
scanf("%d", &c);

char ch;
//%c限制输入字符型
scanf("%c", &ch);

printf("%d, %c", c, ch);

return 0;
}


(2)输入一个串字符串

#import <Foundation/Foundation.h>

int main()
{
char str[300];  //创建一个数组在存储输入的字符串。

printf("请输入一个字符串:\n"); //提示输入字符串

scanf("%s", str);

//输出字符串
printf("接收的字符串为:%s\n", str);

return 0;
}


(3)输入6个字符串

#import <Foundation/Foundation.h>

int main()
{
char str[6][300];  //创建一个数组在存储输入的字符串。

//printf("请输入第一个字符串:\n");

for(int i = 0; i < 6; i++)
{
printf("请输入第%d个字符串:\n", i+1);  //提示输入字符串
scanf("%s", str[i]);
}

//输出字符串
for(int i = 0; i < 6; i++)
{
printf("接收的第%d个字符串为:%s\n", i+1, str[i]);
}

return 0;
}


(4)接收一个英文句子

#import <Foundation/Foundation.h>

int main()
{
//接收一个英文句子
char str[300];  //定义一个数组用来存储英文句子
char *strPoint = str;   //定义一个指针,指向数组

printf("请输入一端英文句子:\n");

//接收句子
do
{
scanf("%c", strPoint);
} while(*(strPoint++) != '\n');

*(strPoint-1) = '\0'; //为字符串添加结尾标识

//输入英文句子
printf("英文句子为:%s\n", str);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐