1、scanf函数的特殊用法
char ch[100];
NSLog(@"请输入一个字符串:");
scanf("%s", ch);
printf("%s\n", ch);
char ch1;
NSLog(@"请输入一个字符");
scanf("%*[^\n]");//清除键盘缓冲区中\n以前的所有字符
scanf("%*c");//只能清除键盘缓冲区中的一个字符
scanf("%c", &ch1);
NSLog(@"%c", ch1);
char str[5];
NSLog(@"请输入一个字符串(最多只能输入4个字符):");
scanf("%4s", str);//%4s保证最多只输入4个字符
printf("%s\n", str);
2、const关键字
const int a = 10;//const能将变量a变成只读的
//a = 20;
int *p1 = &a;
*p1 = 20;
NSLog(@"a=%d, *p1=%d", a, *p1);
int b = 30;
const int *p2 = &b;
//*p2 = 40;//const将指针指向的变量变成只读的
int c = 50;
p2 = &c;
NSLog(@"%d", *p2);
int* const p3 = &b;
*p3 = 60;
//p3 = &c;//const将指针本身变成了只读的
const int* const p4 = &b;
// *p4 = 70;
// p4 = &c;
3、数值型数据与字符串之间的转换
//数值型数据转换成字符串
int i = 12345;
char buffer[100];
sprintf(buffer, "%d", i);
printf("%s\n", buffer);
double d = 3.1415926;
sprintf(buffer, "%.7lf", d);
printf("%s\n", buffer);
unsigned long int ul = 9876543210;
sprintf(buffer, "%lu", ul);
printf("%s\n", buffer);
//字符串向数值型数据的转换
char *data = "54321";
sscanf(data, "%d", &i);
NSLog(@"%d", i);
data = "2.6845319";
sscanf(data, "%lf", &d);
NSLog(@"%.7lf", d);
4、可变长参数
#import
void printArg(int num, ...)
{
va_list vap;
va_start(vap, num);
for (int i = 0; i < num; i++)
{
int arg = va_arg(vap, int);
printf("%d ", arg);
}
printf("\n");
va_end(vap);
}
//写一个可变长参数,求所有变长参数的和
int sum(int num, ...)
{
va_list vap;
va_start(vap, num);
int sum = 0;
for (int i = 0; i < num; i++)
{
sum += va_arg(vap, int);
}
va_end(vap);
return sum;
}
int main()
{
@autoreleasepool {
NSLog(@"Hello world!");
NSLog(@"%d", 10);
NSLog(@"%d, %g", 10, 3.14);
printArg(3, 10, 20, 30);
printArg(6, 11, 22, 33, 44, 55, 66);
NSLog(@"%d", sum(3,1,2,3));
}
return 0;
}
5、日期和时间
clock_t t = clock();
NSLog(@"%lu", t);
clock_t begin = clock();
for (int i = 0; i < 2100000000; i++)
{
;
}
clock_t end = clock();
NSLog(@"%lg秒", (end - begin) * 1.0 / CLOCKS_PER_SEC);
time_t t1;
time(&t1);//获取当前日历时间
NSLog(@"%s", ctime(&t1));
char buffer[100];
strftime(buffer, 100, "%Y年%m月%d日 %H:%M:%S 星期%w", localtime(&t1));
printf("%s\n", buffer);
6、OC的字符串
#import
void print(NSString *str)
{
NSLog(@"%@", str);
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSLog(@"Hello, World!");
char *str = "This is a string.";
printf("%s\n", str);
NSString *str1 = @"This is a string.";
NSLog(@"%@", str1);
NSString *str2;
str2 = str1;
str2 = @"This is another string.";
print(str2);
}
return 0;
}
7、类与对象
类:是结构体的升级,用于定义变量
与结构体的区别
关键字不一样
成员变量前加下划线
有函数
类的对象(变量)只能定义在堆上,不能定义在栈上,且不需要释放
类中的属性(成员变量)不能在类外被操作,需要使用setter赋值,getter访问
对象:
是一种特殊的变量
对象与变量的区别是,对象可以调用类中的方法(函数)
对象也被称为实例,用类定义一个对象,又被称为类的实例化
分割文件,类的声明在.h文件中,类的方法(函数)实现在.m文件中