iOS 학습 노트---c 언어 9일차
14037 단어 학습 노트
구조체 변수를 가리키는 바늘을 구조체 바늘이라고 한다
->을(를) 사용하여 컨텐트를 가리킬 수 있습니다.
%p 인쇄 주소
void pLenth(cPoint *p1,cPoint *p2)
//두 점 사이의 거리를 구하는 개방 함수 sqrt()와 제곱 함수pow(,)
{
float a = sqrt(pow((p1->x-p2->x), 2)+pow((p1->y-p2->y), 2));
printf("두 점 거리%.2f", a);
}
//main.m
#import <Foundation/Foundation.h>
#import "Lesson.h"
#import "Cpoint.h"
int main(int argc, const char * argv[])
{
Student stu = {"xiao wang tou",18,32,'m'};
Student *p = &stu;
p->name[0] -= 32;// name
printf("%s
",p->name);
//
for (int i = 0; i<strlen(p->name); i++) {
if (p->name[i]==' ') {
p->name[i]='_';
}
}
printf("%s",p->name);
// strcpy((*p).name, "xiaoliu");
// strcpy(p->name, "hello");
// printf("%lu %lu %s
r",sizeof(stu),sizeof(p),(*p).name);
// printf("%p %p",&(p->name),p);
// Cpoint point1 = {1.25,2.36};
// Cpoint *q = &point1;
// printf("%.2f %.2f
",q->x,q->y);//
// printf("%.2f %.2f",(*q).x,(*q).y);
// Cpoint point2[]={{5,6},{8,10}};
// Cpoint *r = point2;
// float num=sqrt((r->x-(r+1)->x)*(r->x-(r+1)->x)+(r->y-(r+1)->y)*(r->y-(r+1)->y));
// printf("%.2f",num);
// mysqrt(point2);
return 0;
}
//Cpoint.h
typedef struct cpoint{
float x;
float y;
}Cpoint;
void mysqrt(Cpoint point2[]);
//Cpoint.m
#import "Cpoint.h"
void mysqrt(Cpoint point2[]){
Cpoint *r = point2;
float num=sqrt((r->x-(r+1)->x)*(r->x-(r+1)->x)+(r->y-(r+1)->y)*(r->y-(r+1)->y));
printf("%.2f",num);
}
//Lesson.h
//
typedef struct student{
char name[20];//
int num; //
int age; //
char sex; //
}Student;
구조체 배열.
stu stus[3] = {0};
stu *p = &stus;
*(p+1).두 번째 학생의num
성별을 남자 학생으로 찾아내 성적 증가 10, 100 초과 100
student 구조체에 score 멤버를 추가합니다.
//Lesson.h
typedef struct student{
char name[20];//
int num; //
int age; //
char sex; //
float score; //
}Student;
void manscore(Student *stud,int count);
//Lesson.m
// 10, 100, 100
void manscore(Student *stud,int count)
{
for (int i=0; i<count; i++) {
if ((stud+i)->sex=='m') {
(stud+i)->score+=10;
if ((stud+i)->score>=100) {
(stud+i)->score=100;
}
}
printf("%.2f ",(stud+i)->score);
}
}
//
Student arr[3]={{"xiaoming",1,18,'m',95},{"xiaobai",2,20,'f',90},{"xiaoxiao",3,19,'m',56}};
Student *p = arr;
// for (int i=0; i<3; i++) {
// if ((p+i)->sex=='m') {
// (p+i)->score+=10;
// if ((p+i)->score>=100) {
// (p+i)->score=100;
// }
// }
//
// printf("%.2f ",(p+i)->score);
// }
manscore(p, 3);
3. 사전 컴파일 명령
매크로 정의는 실제 개발에 사용되는 것이 비교적 많다
미리 컴파일할 때 바꾸기 (컴파일하기 전)
매크로 이름 규칙: 순수한 대문자 또는 k+낙타 봉
#define kMax 100
eg: MAX 또는 KMax
매크로는 기호 상수이지 변수 제작 교체가 아닙니다. 문법 검사를 하지 않고 뒤에 번호가 없습니다.
매개변수가 있는 매크로
#define MUL(A,B) ((A)*(B))
#define kSum(A,B) A*B
int main(int argc, const char * argv[])
{
int a = kSum(3+5,6-3);//3+5*6-3
printf("%d",a);// 30
조건 컴파일
역할: 조건에 따라 코드를 컴파일합니다.
조건 번역에는 세 가지 형식이 있다
1. #ifdef 식별자
코드 세그먼트 1
#else
코드 세그먼트 2
#endif
// AAA
#ifdef AAA
printf(" ");
#else
printf(" ");
#endif// #endif
2. #ifndef 식별자
코드 세그먼트 1
#else
코드 세그먼트 2
#endif
3. #if 상수 표현식
코드 세그먼트 1
#else
코드 세그먼트 2
#endif
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
STL 학습노트(6) 함수 객체모방 함수는 모두pass-by-value이다 함수 대상은 값에 따라 전달되고 값에 따라 되돌아오기 때문에 함수 대상은 가능한 한 작아야 한다(대상 복사 비용이 크다) 함수 f와 대상 x, x 대상에서 f를 호출하면:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.